package com.micro.ai.files.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.files.entity.FileAttachment;

/**
 * 文件附件服务接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public interface FileAttachmentService extends IService<FileAttachment> {

    /**
     * 创建文件附件
     */
    FileAttachment create(FileAttachment attachment);

    /**
     * 更新文件附件
     */
    FileAttachment update(String id, FileAttachment attachment);

    /**
     * 删除文件附件（同时删除物理文件）
     */
    void delete(String id);

    /**
     * 分页查询
     */
    Page<FileAttachment> pageQuery(int pageNum, int pageSize, String tenantId, 
                                   String keyword, String fileType, 
                                   String associatedType, String associatedId);

    /**
     * 根据关联信息查询文件
     */
    java.util.List<FileAttachment> listByAssociated(String tenantId, String associatedType, String associatedId);

    /**
     * 批量删除关联文件
     */
    void deleteByAssociated(String tenantId, String associatedType, String associatedId);
}

